1. Field of the Invention
The present invention relates to Mobile IP network technology. More particularly, the present invention relates to optimizing the transmission of IP multicast data in a Mobile IP environment.
2. Description of the Related Art
Mobile IP is a protocol which allows laptop computers or other mobile computer units (referred to as xe2x80x9cMobile Nodesxe2x80x9d herein) to roam between various sub-networks at various locationsxe2x80x94while maintaining internet and/or WAN connectivity. Without Mobile IP or related protocol, a Mobile Node would be unable to stay connected while roaming through various sub-networks. This is because the IP address required for any node to communicate over the internet is location specific. Each IP address has a field that specifies the particular sub-network on which the node resides. If a user desires to take a computer which is normally attached to one node and roam with it so that it passes through different sub-networks, it cannot use its home base IP address. As a result, a business person traveling across the country cannot merely roam with his or her computer across geographically disparate network segments or wireless nodes while remaining connected over the internet. This is not an acceptable state-of-affairs in the age of portable computational devices.
To address this problem, the Mobile IP protocol has been developed and implemented. An implementation of Mobile IP is described in RFC 2002 of the Network Working Group, C. Perkins, Ed., October 1996. Mobile IP is also described in the text xe2x80x9cMobile IP Unpluggedxe2x80x9d by J. Solomon, Prentice Hall. Both of these references are incorporated herein by reference in their entireties and for all purposes.
The Mobile IP process and environment are illustrated in FIG. 1. As shown there, a Mobile IP environment 2 includes the internet (or a WAN) 4 over which a Mobile Node 6 can communicate remotely via mediation by a Home Agent 8 and a Foreign Agent 10. Typically, the Home Agent and Foreign Agent are routers or other network connection devices performing appropriate Mobile IP functions as implemented by software, hardware, and/or firmware. A particular Mobile Node (e.g., a laptop computer) plugged into its home network segment connects with the internet through its designated Home Agent. When the Mobile Node roams, it communicates via the internet through an available Foreign Agent. Presumably, there are many Foreign Agents available at geographically disparate locations to allow wide spread internet connection via the Mobile IP protocol. Note that it is also possible for the Mobile Node to register directly with its Home Agent.
As shown in FIG. 1, Mobile Node 6 normally resides on (or is xe2x80x9cbased atxe2x80x9d) a network segment 12 which allows its network entities to communicate over the internet 4 through Home Agent 8 (an appropriately configured router denoted R2). Note that Home Agent 8 need not directly connect to the internet. For example, as shown in FIG. 1, it may be connected through another router (a router R1 in this case). Router R1 may, in turn, connect one or more other routers (e.g., a router R3) with the internet.
Now, suppose that Mobile Node 6 is removed from its home base network segment 12 and roams to a remote network segment 14. Network segment 14 may include various other nodes such as a PC 16. The nodes on network segment 14 communicate with the internet through a router which doubles as Foreign Agent 10. Mobile Node 6 may identify Foreign Agent 10 through various solicitations and advertisements which form part of the Mobile IP protocol. When Mobile Node 6 engages with network segment 14, Foreign Agent 10 relays a registration request to Home Agent 8 (as indicated by the dotted line xe2x80x9cRegistrationxe2x80x9d). The Home and Foreign Agents may then negotiate the conditions of the Mobile Node""s attachment to Foreign Agent 10. For example, the attachment may be limited to a period of time, such as two hours. When the negotiation is successfully completed, Home Agent 8 updates an internal xe2x80x9cmobility binding tablexe2x80x9d which specifies the care-of address (e.g., a collocated care-of address or the Foreign Agent""s IP address) in association with the identity of Mobile Node 6. Further, the Foreign Agent 10 updates an internal xe2x80x9cvisitor tablexe2x80x9d which specifies the Mobile Node address, Home Agent address, etc. In effect, the Mobile Node""s home base IP address (associated with segment 12) has been shifted to the Foreign Agent""s IP address (associated with segment 14).
Now, suppose that Mobile Node 6 wishes to send a message to a corresponding node 18 from its new location. An output message from the Mobile Node is then packetized and forwarded through Foreign Agent 10 over the internet 4 and to corresponding node 18 (as indicated by the dotted line xe2x80x9cpacket from MNxe2x80x9d) according to a standard internet protocol. If corresponding node 18 wishes to send a message to Mobile Nodexe2x80x94whether in reply to a message from the Mobile Node or for any other reasonxe2x80x94it addresses that message to the IP address of Mobile Node 6 on sub-network 12. The packets of that message are then forwarded over the internet 4 and to router R1 and ultimately to Home Agent 8 as indicated by the dotted line (xe2x80x9cpacket to MN(1)xe2x80x9d). From its mobility binding table, Home Agent 8 recognizes that Mobile Node 6 is no longer attached to network segment 12. It then encapsulates the packets from corresponding node 18 (which are addressed to Mobile Node 6 on network segment 12) according to a Mobile IP protocol and forwards these encapsulated packets to a xe2x80x9ccare ofxe2x80x9d address for Mobile Node 6 as shown by the dotted line (xe2x80x9cpacket to MN(2)xe2x80x9d). The care-of address may be, for example, the IP address of Foreign Agent 10. Foreign Agent 10 then strips the encapsulation and forwards the message to Mobile Node 6 on sub-network 14. The packet forwarding mechanism implemented by the Home and Foreign Agents is often referred to as xe2x80x9ctunneling.xe2x80x9d
IP multicasting is the transmission of an IP packet to a xe2x80x9chost groupxe2x80x9d (i.e., multicast group), a set of zero or more hosts identified by a single IP destination address. RFC 1112 sets forth the recommended standard for IP multicasting on the Internet. Internetwork forwarding of IP multicast packets is handled by xe2x80x9cmulticast routersxe2x80x9d which may be co-resident with, or separate from, internet gateways. In addition, support for IP multicasting requires implementation of the Internet Group Management Protocol (IGMP). Thus, through IGMP, a node (e.g., receiver) may join a multicast group in order to receive packets addressed to that multicast group IP address.
FIG. 2 is a block diagram illustrating IP multicast data flow in a fixed environment. As shown, multiple receivers 202, 204, and 206 may be coupled to a single multicast router 208. For instance, each receiver may be associated with a television capable of receiving multicast data. When the receiver 202 wants to listen to a particular multicast group IP address, the receiver 202 sends an IGMP report. This may occur, for example, when a television viewer changes the channel on the television. An IGMP report, or xe2x80x9chost membership report,xe2x80x9d reports each host group to which the receiver belongs. In the normal case, only one report will be generated for each group present on the network by the first receiver to send such a report. This is sufficient since a multicast router need not know which hosts belong to a multicast group; only that at least one host belongs to a multicast group on a particular network. The host membership report indicates to the router 208 that multicast packets for that multicast group need to be replicated and forwarded. When the router 208 receives the IGMP report, the router 208 sends a join host group message toward a rendezvous point 210 which is recognized by both the receiver 202 and source 212. In other words, the rendezvous point 210 is established for communicating messages between the receiver 202 and the source 212. A join host group message specifies the multicast group address of the host group the receiver 202 wishes to join. In addition, the join host group message serves to request that the receiving network module accept and deliver subsequently arriving packets destined to the specified IP host group address. Moreover, the router 208 is aware of the location of the rendezvous point 210. The router 208 then sets up a data path between the router 208 and the rendezvous point 210 for the transmission and forwarding of multicast data from the rendezvous point 210 to the router 208. Thus, when the source 212 sends streaming data (e.g., television channel or stock information) to the rendezvous point 210, the rendezvous point 210 forwards the data to the router 208. The router 208 then makes copies of the packet and sends the packet to each subnet with receiver that has joined that particular multicast group. In this example, the router 208 sends the packet to the receiver 202. If any other receivers (e.g., 204, 206) have joined the multicast group, copies of the packet are sent to these receivers as well, if they are on different subnets.
It is important to note that for multicast data transmission, packets must be replicated for transmission to the appropriate receivers. However, in a Mobile IP environment, the designated method of replication of packets is specifically addressed by RFC 2002. RFC 2002 defines a method to support IP multicast data transmission in a Mobile IP environment. More particularly, RFC 2002 specifically requires that the Home Agent replicate broadcast and multicast data packets for transmission to multiple devices (e.g., mobile nodes) destined to receive the packets.
Although RFC 2002 enables IP multicast data to be transmitted in a Mobile IP environment, this method is sub-optimal, since it requires the Home Agent to duplicate multicast packets for transmission to each mobile node via a tunnel to the Foreign Agent. This replication by the Home Agent is required, even if all mobile nodes are visiting the same Foreign Agent. It is important to note that the distance between the Home Agent and the Foreign Agent may be substantial, consuming network bandwidth and switch processing during the replication process. In view of the above, it would be desirable to optimize IP multicast data transmission in a Mobile IP environment.
The present invention optimizes the transmission of IP multicast data in a mobile IP environment. This is accomplished by performing packet replication and transmission at the Foreign Agent or associated multicast router rather than at the Home Agent. In order to modify the packet replication process, the present invention provides a mechanism for establishing a data path between the Foreign Agent and the Home Agent that enables this method of packet replication and transmission.
In accordance with one aspect of the invention, a Foreign Agent is configured to establish a data path between the Foreign Agent and a Home Agent, where the data path is adapted for transmission of multicast IP data packets from the Home Agent to the Foreign Agent so that the multicast data packets may be transmitted to one or more mobile nodes visiting the Foreign Agent. The Foreign Agent receives an information request associated with a host membership report sent from a mobile node, where the host membership report specifies a multicast group address identifying a host group to which the mobile node belongs. For example, the information request may ask whether the mobile node is allowed to join the host group, it may indicate that information identifying the Home Agent is requested from the Foreign Agent, and/or it may ask whether the mobile node is visiting the Foreign Agent. In response to this information request, the Foreign Agent provides information identifying the Home Agent associated with the mobile node to a multicast router process, thereby enabling the multicast router process to send a join host group message to the Home Agent. The join host group message specifies the multicast group address and operates to request that the Home Agent accept and deliver subsequently arriving multicast data packets destined to the multicast group address to the Foreign Agent.
In accordance with another aspect of the invention, a multicast router implements a multicast router process. The multicast router is adapted for receiving a host membership report sent from a mobile node. The multicast router then sends an information request associated with the host membership report to a Foreign Agent that the mobile node is visiting. For instance, the information request may request information identifying a Home Agent of the mobile node or it may ask the Foreign Agent whether the mobile node is visiting the Foreign Agent. The multicast router is further configured to receive any information identifying the Home Agent from the Foreign Agent. In addition, the multicast router may send ajoin host group message to the Home Agent, where the join host group message specifies the multicast group address and requests that the Home Agent accept and deliver subsequently arriving packets destined to the multicast group address to the Foreign Agent. For instance, the join host group message may be sent to the Home Agent when the mobile node is visiting the Foreign Agent.
In accordance with yet another aspect of the invention, a Home Agent is configured to establish a data path between a Foreign Agent and the Home Agent, where the data path is adapted for transmission of multicast IP data packets from the Home Agent to the Foreign Agent so that the multicast data packets may be transmitted to one or more mobile nodes visiting the Foreign Agent. The Home Agent is configured to receive ajoin host group message and send the join host group message toward a source of multicast IP data packets. The Home Agent then sets up a data path between the Home Agent and the Foreign Agent, thereby enabling packets addressed to the multicast group address to be forwarded by the Home Agent to the Foreign Agent. Thus, the Home Agent may forward multicast data packets using a single encapsulation step since the Home Agent is not responsible for replication of the multicast data packets.